

package logicBusiness;

import DAO.LaboratorioDao;
import models.Laboratorio;
import java.util.List;
import javax.persistence.*;
import javax.swing.JTable;

public class LaboratorioBL {

    private int ok = 0;
    LaboratorioDao laboratoriodao;

    public int crearLaboratorio( Integer capacidadLab,
            String nombreLab, String descripcionLab, String disponibleLab) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        em.getTransaction().begin();
        Laboratorio a = dao.crearLaboratorio(capacidadLab,nombreLab,descripcionLab, disponibleLab );
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        }
//        else if (a.getnombreLab().equals(nombreLab)) {
//            ok = 1;
//        }
        return ok;


    }

         public List obtenerListLaboratorio() {
        EntityManagerFactory emf =
        Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        laboratoriodao = new LaboratorioDao(em);
        em.getTransaction().begin();

        List lista=null;               //coleccion de objetos con atributos de preinscrito
        lista=(List) laboratoriodao.encontrarLaboratorio();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        return lista;
    }


          public Integer resultado() {
        int i = 0;
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        return i=dao.devolverId();
    }
   

          public void actualizarLaboratorio(JTable tablaentrada){

        EntityManagerFactory emf =
        Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        laboratoriodao = new LaboratorioDao(em);

        for(int iterador=0;iterador<tablaentrada.getRowCount();iterador++)
        {

            if(tablaentrada.getValueAt(iterador, 5).equals("si")||
               tablaentrada.getValueAt(iterador, 5).equals("s")||
               tablaentrada.getValueAt(iterador, 5).equals("S")||
               tablaentrada.getValueAt(iterador, 5).equals("SI"))
            {
            System.out.println((Integer) tablaentrada.getValueAt(iterador, 0));
            laboratoriodao.ActualizarLaboratorio((Integer) tablaentrada.getValueAt(iterador, 0));
               //columna 0, columna con numero de identidad

            }

        }
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
    }

    public int borrarLaboratorio(Integer idLaboratorio) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        em.getTransaction().begin();
        dao.borrarLaboratorio(idLaboratorio);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv

        return ok;

    }

    public int encontrarLaboratorio(Integer idLaboratorio) {
        // find an user
        EntityManagerFactory emf =
         Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        Laboratorio a = dao.encontrarLaboratorio(idLaboratorio);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        } else if (a.getIdLaboratorio().equals(idLaboratorio)) {
            ok = 1;
        }
        return ok;

    }
    public Laboratorio consultarLaboratorio(Integer idLaboratorio) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        Laboratorio a = dao.encontrarLaboratorio(idLaboratorio);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
            ok = 0;
        } else if (a.getId().equals(idAula)) {
            ok = 1;
        }*/
        return a;
    }
    public int actualizarLaboratorio(Integer idLaboratorio, Integer capacidadLab,
            String nombreLab, String descripcionLab, String disponibleLab) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        em.getTransaction().begin();
        Laboratorio a = dao.actualizarLaboratorio(idLaboratorio, capacidadLab,
                nombreLab, descripcionLab, disponibleLab);
        em.getTransaction().commit();

        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (a == null) {
            ok = 0;
        } else if (a.getIdLaboratorio().equals(idLaboratorio)) {
            ok = 1;
        }
        return ok;

    }

    public List<Laboratorio> findAll() {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("sischoolPU");
        EntityManager em = emf.createEntityManager();
        LaboratorioDao dao = new LaboratorioDao(em);
        List<Laboratorio> a = dao.findAll();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        /*if (a == null) {
            ok = 0;
        } else if (a.getId().equals(idAula)) {
            ok = 1;
        }*/
        return a;
    }



}
